package com.example.dao; // 定义包名，表示该接口属于dao包

import com.example.model.User; // 导入User实体类
import java.util.List; // 导入List集合接口

/**
 * 用户数据访问对象接口
 * 定义用户相关的数据库操作
 */
public interface UserDao { // 定义公共的UserDao接口
    
    /**
     * 根据用户名查找用户
     * @param username 用户名
     * @return 用户对象，如果不存在则返回null
     */
    User findByUsername(String username); // 声明根据用户名查找用户的抽象方法
    
    /**
     * 注册新用户
     * @param user 用户对象
     * @return 注册成功返回true，失败返回false
     */
    boolean register(User user); // 声明用户注册的抽象方法
    
    /**
     * 查询所有用户
     * @return 用户列表
     */
    List<User> findAll(); // 声明查询所有用户的抽象方法
    
    /**
     * 根据用户ID查找用户
     * @param id 用户ID
     * @return 用户对象，如果不存在则返回null
     */
    User findById(int id); // 声明根据ID查找用户的抽象方法
    
    /**
     * 更新用户信息
     * @param user 用户对象
     * @return 更新成功返回true，失败返回false
     */
    boolean update(User user); // 声明更新用户信息的抽象方法
    
    /**
     * 删除用户
     * @param id 用户ID
     * @return 删除成功返回true，失败返回false
     */
    boolean delete(int id); // 声明删除用户的抽象方法
} // UserDao接口结束